package com.itcam.socket_;

import java.io.DataInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.ServerSocket;
import java.net.Socket;

/**
 * Author:Cammy.Wu
 * Date:2024-05-15
 * Description:单向通信————服务器
 */

public class ServerDemo01 {
    public static void main(String[] args) throws IOException {
        // 1.创建套接字：指定服务器的端口号
        ServerSocket serverSocket = new ServerSocket(8888);
        // 2.等待客户端发来的信息
        Socket socket = serverSocket.accept(); // 阻塞方法：等待接受客户端的数据，什么时候接收到数据，什么时候程序继续向下执行
        // accpet()返回一个Socket，这个Socket其实就是客户端的Socket
        // 接收到这个Socket以后，客户端和服务器才真正产生了链接，才真正可以通信了
        // 3.接收到的操作流
        InputStream inputStream = socket.getInputStream();
        DataInputStream dataInputStream = new DataInputStream(inputStream);

        // 4.读取客户端发来的数据
        String str = dataInputStream.readUTF();
        System.out.println("客户端发来的数据为：" + str);

        // 5.关闭流
        dataInputStream.close();
        inputStream.close();
        socket.close();
        serverSocket.close();
    }
}
